﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BlobStroage
{
    public class MonitoredCounter
    {
        public static List<Counter> CounterCollection
        {
            get
            {
                List<Counter> counters = new List<Counter>();

                counters.Add(new Counter() { SpecifierKey = "CPU", SpecifierValue = @"\Processor(_Total)\% Processor Time" });
                counters.Add(new Counter() { SpecifierKey = "Memory", SpecifierValue = @"\Memory\Available MBytes" });
                counters.Add(new Counter() { SpecifierKey = "CLR Memory", SpecifierValue = @"\.NET CLR Memory(_Global_)\% Time in GC" });
                counters.Add(new Counter() { SpecifierKey = "Requests Total", SpecifierValue = @"\ASP.NET Applications(__Total__)\Requests Total" });
                counters.Add(new Counter() { SpecifierKey = "Requests", SpecifierValue = @"\ASP.NET Applications(__Total__)\Requests/Sec" });
                counters.Add(new Counter() { SpecifierKey = "Requests Queued", SpecifierValue = @"\ASP.NET\Requests Queued" });
                counters.Add(new Counter() { SpecifierKey = "Requests Rejected", SpecifierValue = @"\ASP.NET\Requests Rejected" });
                counters.Add(new Counter() { SpecifierKey = "Request Execution Time", SpecifierValue = @"\ASP.NET\Request Execution Time" });
                counters.Add(new Counter() { SpecifierKey = "Segments Sent", SpecifierValue = @"\TCPv4\Segments Sent/sec" });

                return counters;
            }
            set
            {

            }
        }
    }

    public class Counter
    {
        public Counter() { }

        private string specifierKey;

        public string SpecifierKey
        {
            get { return specifierKey; }
            set { specifierKey = value; }
        }

        private string specifierValue;

        public string SpecifierValue
        {
            get { return specifierValue; }
            set { specifierValue = value; }
        }

        public override string ToString()
        {
            return this.SpecifierKey;
        }
    }
}
